package com.ctshk.rpc.tour.dto.schedule;

import com.ctshk.rpc.tour.req.CollectionPlaceJson;
import com.ctshk.rpc.tour.req.TourThemeJson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

/**
 * @author pf
 */
@Data
@ApiModel(value = "SeriesTripScheduleDataDTO", description = "团期--基本资料")
public class SeriesTripScheduleDataDTO implements Serializable {

    @ApiModelProperty(value = "id")
    private Long id;

    @ApiModelProperty(value = "行程id")
    private Long tripId;

    @ApiModelProperty(value = "已收客人数")
    private Integer lockedTouristNum;

    @ApiModelProperty(value = "行程标题")
    private String title;

    @ApiModelProperty(value = "副标题")
    private String subtitle;

    @ApiModelProperty(value = "行程特色JSON")
    private List<String> tripFeaturesJson;

    @ApiModelProperty(value = "目的地主数据ID")
    private Long destinationId;

    @ApiModelProperty(value = "目的地")
    private String destination;

    @ApiModelProperty(value = "出发地主数据ID")
    private Long departurePlaceId;

    @ApiModelProperty(value = "出发地")
    private String departurePlace;

    @ApiModelProperty(value = "旅游组别主数据ID")
    private Long tourTypeId;

    @ApiModelProperty(value = "旅游组别名称")
    private String tourTypeName;

    @ApiModelProperty(value = "旅行团种类主数据ID")
    private Long groupTypeId;

    @ApiModelProperty(value = "旅行团种类名称")
    private String groupTypeName;

    @ApiModelProperty(value = "团队性质主数据ID")
    private Long groupNatureId;

    @ApiModelProperty(value = "团队性质名称")
    private String groupNatureName;

    @ApiModelProperty(value = "旅行团主题JSON")
    private List<TourThemeJson> tourThemeJson;

    @ApiModelProperty(value = "行程有效期类型(1:长期 2：规定时限)")
    private Integer tripPeriodType;

    @ApiModelProperty(value = "行程起始日期")
    private LocalDateTime tripBeginDate;

    @ApiModelProperty(value = "行程结束日期")
    private LocalDateTime tripEndDate;

    @ApiModelProperty(value = "行程码")
    private String tripCode;

    @ApiModelProperty(value = "出行天数")
    private Integer travelDays;

    @ApiModelProperty(value = "含几晚")
    private Integer nightDays;

    @ApiModelProperty(value = "集合地点JSON")
    private List<CollectionPlaceJson> collectionPlaceJson;

    @ApiModelProperty(value = "解散地区JSON")
    private List<CollectionPlaceJson> dissolutionAreaJson;

    @ApiModelProperty(value = "去程咨询(班次号)")
    private String departureConsulation;

    @ApiModelProperty(value = "去程时间")
    private LocalTime departureTime;

    @ApiModelProperty(value = "去程时间类型（1：首天  2：前一天）")
    private Integer departureTimeType;

    @ApiModelProperty(value = "去程到达时间类型（1：首天  2：前一天）")
    private Integer goArriveDateType;

    @ApiModelProperty(value = "去程到达时间")
    private LocalTime goArriveTime;

    @ApiModelProperty(value = "去程交通类型主数据ID")
    private Long departureTrafficTypeId;

    @ApiModelProperty(value = "去程交通类型")
    private String departureTrafficType;

    @ApiModelProperty(value = "返程咨询（班次号）")
    private String returnConsulation;

    @ApiModelProperty(value = "返程时间")
    private LocalTime returnTime;

    @ApiModelProperty(value = "返程时间类型（1：首天  2：前一天）")
    private Integer returnTimeType;

    @ApiModelProperty(value = "返程达到时间类型（1：首天  2：前一天）")
    private Integer returnArriveDateType;

    @ApiModelProperty(value = "返程到达时间")
    private LocalTime returnArriveTime;

    @ApiModelProperty(value = "返程交通类型主数据ID")
    private Long returnTrafficTypeId;

    @ApiModelProperty(value = "返程交通类型")
    private String returnTrafficType;

    @ApiModelProperty(value = "轮播图JSON")
    private List<String> rotatePicturesJson;

    @ApiModelProperty(value = "封面图")
    private String coverPhotoUrl;

    @ApiModelProperty(value = "是否需要保险")
    private Integer needInsurance;

    @ApiModelProperty(value = "是否需要签证 （0 是 , 1否）")
    private Integer needVisa;

    @ApiModelProperty(value = "内部摘要")
    private String internalSummary;

    @ApiModelProperty(value = "顾客须知")
    private String customerRights;

    @ApiModelProperty(value = "门市摘要")
    private String shopSummary;

    @ApiModelProperty(value = "团费包含")
    private String tourFeeInclude;

    @ApiModelProperty(value = "团费不包含")
    private String tourFeeExclude;

    @ApiModelProperty(value = "报名须知")
    private String signNotice;

    @ApiModelProperty(value = "备注")
    private String remark;

}
